const 	router  = require('../node_modules/koa-router')(); //路由
const DB=require('../moduel/db.js'); //数据库操作类

const baseUrl='http://192.168.61.87:3005/'

// 路由守卫 判断用户是否登录
const routerTest=async (ctx)=>{
	if (!ctx.session.userinfo) {
		ctx.response.redirect('/login');
	}
	return true
}

router
	.get('/', async (ctx, next) => {
		await routerTest(ctx);
		let data=await DB.find('user',{});
		// console.log('data',data);
		console.log('session',ctx.session.userinfo)
		await ctx.render('index',{
			list:data
		})
		await next()
	})
	.get('/boss', async (ctx, next) => {
		await routerTest(ctx);
		let data=await DB.find('user',{'utype':'boss'});
		await ctx.render('index',{
			list:data
		})
		await next()
	})
	.get('/seeker', async (ctx, next) => {
		await routerTest(ctx);
		let data=await DB.find('user',{'utype':'seeker'});
		await ctx.render('index',{
			list:data
		})
		await next()
	})
	.get('/edit/:id', async (ctx,next)=>{
			let id=ctx.params.id;
			let data=await DB.find('user',{'uid':id})
			// console.log('data[0]',data[0])
			if(data.length){
				await ctx.render('edit',{
					baseUrl,
					data:data[0]
				})
			}
			await next()
	})
	// ajax提交上传图片
	.post('/edit',async (ctx,next)=>{
		// console.log('ctx.request.body',ctx.request.body);
		let uid=ctx.request.body.uid,
				uname=ctx.request.body.uname,
				age=ctx.request.body.age,
				utype=ctx.request.body.utype,
				company=ctx.request.body.company,
				ustate=ctx.request.body.ustate,
				upic=ctx.uploadpath.files;
			
		let data = await	DB.upData('user',{"uid":uid},{
			uname,age,utype,company,ustate,upic
		})
		try{
				if(data.result.ok){
					ctx.body = JSON.stringify({'success':true,data:'修改成功'});
				}
		}catch(err){
				console.log(err);
				ctx.body = JSON.stringify({'success':false,data:'修改失败'});
				return;
		}
		
	})
	.get('/add',async (ctx)=>{
		await ctx.render('add');
	})
	// ajax提交上传图片
	.post('/add',async (ctx)=>{
		let uname=ctx.request.body.uname;
		let db=await DB.find('user',{'uname':uname});
		if(db.length){
			ctx.body = JSON.stringify({'success':false,data:'用户名已存在'});
			return 
		}

		let d=await DB.find('user',{});
		let len=d.length.toString();
		
		let uid=len,
				age=ctx.request.body.age,
				utype=ctx.request.body.utype,
				company=ctx.request.body.company,
				ustate=ctx.request.body.ustate,
				passWork=ctx.request.body.psw,
				//ctx.uploadpath.files;  files 这是前端传来的参数名
				upic=ctx.uploadpath.files;

				console.log('boby',ctx.request.body)

		// console.log('add-ctx.request',ctx.request.files)

		console.log('ctx.uploadpath',upic);
		let data= await DB.insert('user',{ 
			uid,uname,age,utype,company,ustate,passWork,upic
		})
		try{
			if(data.result.ok){
				ctx.body = JSON.stringify({'success':true,data:'增加成功'});
			}
		}catch(err){
			console.log(err);
			ctx.body = JSON.stringify({'success':false,data:'添加失败'});
			return;
		}
	})
	.post('/delete',async (ctx)=>{
		console.log(ctx.request.body.uid)
		let uid=ctx.request.body.uid  
		let data= await DB.remove('user',{'uid':uid})

		try{
			if(data.result.ok){
				ctx.body = JSON.stringify({'success':true,'data':'删除成功'});
			}
		}catch(err){
			console.log(err);
			ctx.body = JSON.stringify({'success':false,'data':'删除失败'});
			return;
		}

	})
	.get('/login',async (ctx)=>{
		await ctx.render('login');
		// ctx.session.userinfo='这是一个测试';
		// ctx.body='登录成功'
	})
	.post('/login', async (ctx)=>{
		let uname=ctx.request.body.uname,
			passWork=ctx.request.body.psw;
		let data= await DB.find('user',{'uname':uname})
		if(!data.length){
			ctx.body={'success':false,'data':'用户名不存在'};
			return
		}
		if(passWork!=data[0].passWork){
			ctx.body={'success':false,'data':'用户密码错误'};
			return
		}

		ctx.session.userinfo=`Koa_${uname}`;
		ctx.body={'success':true,'data':'成功登录'};
	})
	
	//  测试from表单提交上传图片
	.get('/upload',async (ctx)=>{
		// let data= await DB.insert('user',{ _id: '3', age: '33', name: 'caocao3' })
		await ctx.render('upload');
	})
	.post('/upload',async (ctx,next)=>{
			console.log(ctx.request.body);
			const file = ctx.request.files; // 获取上传文件
			ctx.body = JSON.stringify(ctx.request.files);
			// console.log('file',file)
			console.log('ctx.uploadpath',ctx.uploadpath);

  });
  
  module.exports=router.routes();